// 位操作
// 我们不再检查数字的每一个位，而是不断把数字的最后一个 1 反转，并把答案加 1
// 当数字变成 0 的时候偶，我们就直到它没有 1 的位了

var hammingWeight = function (n) {
  let sum = 0;
  while (n != 0) {
    sum++;
    n &= (n - 1);
  }
  return sum;
}



var hammingWeight = function (n) {
  let bits = 0;
  let mask = 1;
  for (let i = 0; i < 32; i++) {
    if ((n & mask) != 0) {
      bits++;
    }
    mask <<= 1;
  }
  return bits;
}